home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- ** **
- ** Module: QD3DShader.h **
- ** **
- ** **
- ** Purpose: public data structures and prototypes **
- ** **
- ** **
- ** **
- ** Copyright (C) 1991-1995 Apple Computer, Inc. All rights reserved. **
- ** **
- ** **
- *****************************************************************************/
- #ifndef QD3DShader_h
- #define QD3DShader_h
-
- #if PRAGMA_ONCE
- #pragma once
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
-
- #if defined(ESCHER_VER_15) && ESCHER_VER_15
-
- #define kQ3NeighborhoodFlagImagePlane ((unsigned long)1 << 0)
- #define kQ3NeighborhoodFlagViewInfo ((unsigned long)1 << 1)
- #define kQ3NeighborhoodFlagLightInfo ((unsigned long)1 << 2)
- #define kQ3NeighborhoodFlagRenderer ((unsigned long)1 << 3)
-
- #define kQ3NeighborhoodFlagAmbientCoefficient ((unsigned long)1 << 4)
- #define kQ3NeighborhoodFlagDiffuseColor ((unsigned long)1 << 5)
- #define kQ3NeighborhoodFlagSpecularColor ((unsigned long)1 << 6)
- #define kQ3NeighborhoodFlagSpecularControl ((unsigned long)1 << 7)
- #define kQ3NeighborhoodFlagTransparencyColor ((unsigned long)1 << 8)
- #define kQ3NeighborhoodFlagEmittedColor ((unsigned long)1 << 9)
-
- #define kQ3NeighborhoodFlagDepth ((unsigned long)1 << 10)
-
- #define kQ3NeighborhoodFlagSurfaceUV ((unsigned long)1 << 11)
- #define kQ3NeighborhoodFlagSurfaceLocation ((unsigned long)1 << 12)
- #define kQ3NeighborhoodFlagSurfaceNormal ((unsigned long)1 << 13)
- #define kQ3NeighborhoodFlagSurfaceTangent ((unsigned long)1 << 14)
-
- #define kQ3NeighborhoodFlagSurfaceFilterSize ((unsigned long)1 << 15)
- #define kQ3NeighborhoodFlagSurfaceProjectedPixelX ((unsigned long)1 << 16)
- #define kQ3NeighborhoodFlagSurfaceProjectedPixelY ((unsigned long)1 << 17)
-
- #define kQ3NeighborhoodFlagSurfaceWorldFilterSize ((unsigned long)1 << 18)
- #define kQ3NeighborhoodFlagSurfaceWorldProjectedPixelX ((unsigned long)1 << 19)
- #define kQ3NeighborhoodFlagSurfaceWorldProjectedPixelY ((unsigned long)1 << 20)
-
- #define kQ3NeighborhoodFlagShadingUV ((unsigned long)1 << 21)
- #define kQ3NeighborhoodFlagShadingNormal ((unsigned long)1 << 22)
- #define kQ3NeighborhoodFlagShadingColor ((unsigned long)1 << 23)
- #define kQ3NeighborhoodFlagShadingScalar ((unsigned long)1 << 24)
- #define kQ3NeighborhoodFlagShadingOpacity ((unsigned long)1 << 25)
- #define kQ3NeighborhoodFlagShadingTrim ((unsigned long)1 << 26)
-
- typedef struct TQ3ImageSubRegion {
- unsigned long north;
- unsigned long east;
-
- unsigned long south;
- unsigned long west;
- } TQ3ImageSubRegion;
-
- typedef struct TQ3ImagePlane {
- /* pixel location */
- unsigned long imageX;
- unsigned long imageY;
-
- /* imageplane size */
- unsigned long imageSizeX;
- unsigned long imageSizeY;
-
- /* pixel location mapped to 0-1 */
- TQ3Param2D imageUV;
-
- /* valid sub-region of pixmap */
- TQ3ImageSubRegion imageSubRegion;
-
- /* pixmap typically attached to drawcontext */
- TQ3Pixmap pixmap;
- } TQ3ImagePlane;
-
- typedef struct TQ3ViewInfo {
- TQ3CameraObject camera;
- TQ3Point3D cameraLocation;
- TQ3Vector3D viewDirection;
- } TQ3ViewInfo;
-
- typedef struct TQ3NeighborhoodPrivate *TQ3NeighborhoodObject;
-
-
- /******************************************************************************
- ** **
- ** Neighborhood Functions **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3NeighborhoodObject Q3Neighborhood_New(
- void);
-
- EXPORT TQ3Status Q3Neighborhood_Dispose(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Status Q3Neighborhood_Initialize(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Status Q3Neighborhood_Validate(
- TQ3NeighborhoodObject neigh,
- unsigned long field);
-
- EXPORT TQ3Status Q3Neighborhood_InValidate(
- TQ3NeighborhoodObject neigh,
- unsigned long field);
-
- EXPORT TQ3Boolean Q3Neighborhood_IsValid(
- TQ3NeighborhoodObject neigh,
- unsigned long field);
-
- EXPORT unsigned long Q3Neighborhood_GetValidFlag(
- TQ3NeighborhoodObject neigh);
-
-
- /******************************************************************************
- ** **
- ** Set Methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3Status Q3Neighborhood_SetImagePlane(
- TQ3NeighborhoodObject neigh,
- const TQ3ImagePlane *imagePlane);
-
- EXPORT TQ3Status Q3Neighborhood_SetViewInfo(
- TQ3NeighborhoodObject neigh,
- const TQ3ViewInfo *viewInfo);
-
- EXPORT TQ3Status Q3Neighborhood_SetLightGroup(
- TQ3NeighborhoodObject neigh,
- TQ3GroupObject lightGroup);
-
- EXPORT TQ3Status Q3Neighborhood_SetRenderer(
- TQ3NeighborhoodObject neigh,
- TQ3RendererObject renderer);
-
- EXPORT TQ3Status Q3Neighborhood_SetAmbientCoefficient(
- TQ3NeighborhoodObject neigh,
- float ambientCoefficient);
-
- EXPORT TQ3Status Q3Neighborhood_SetDiffuseColor(
- TQ3NeighborhoodObject neigh,
- const TQ3ColorRGB *diffuseColor);
-
- EXPORT TQ3Status Q3Neighborhood_SetSpecularColor(
- TQ3NeighborhoodObject neigh,
- const TQ3ColorRGB *specularColor);
-
- EXPORT TQ3Status Q3Neighborhood_SetSpecularControl(
- TQ3NeighborhoodObject neigh,
- float specularControl);
-
- EXPORT TQ3Status Q3Neighborhood_SetTransparencyColor(
- TQ3NeighborhoodObject neigh,
- const TQ3ColorRGB *transparencyColor);
-
- EXPORT TQ3Status Q3Neighborhood_SetEmittedColor(
- TQ3NeighborhoodObject neigh,
- const TQ3ColorRGB *emittedColor);
-
- EXPORT TQ3Status Q3Neighborhood_SetDepth(
- TQ3NeighborhoodObject neigh,
- float depth);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceUV(
- TQ3NeighborhoodObject neigh,
- const TQ3Param2D *surfaceUV);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceLocation(
- TQ3NeighborhoodObject neigh,
- const TQ3Point3D *surfaceLocation);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceNormal(
- TQ3NeighborhoodObject neigh,
- const TQ3Vector3D *surfaceNormal);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceTangent(
- TQ3NeighborhoodObject neigh,
- const TQ3Tangent2D *surfaceTangent);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceFilterSize(
- TQ3NeighborhoodObject neigh,
- float surfaceFilterSize);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceProjectedPixelX(
- TQ3NeighborhoodObject neigh,
- const TQ3Vector2D *surfaceProjectedPixelX);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceProjectedPixelY(
- TQ3NeighborhoodObject neigh,
- const TQ3Vector2D *surfaceProjectedPixelY);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceWorldFilterSize(
- TQ3NeighborhoodObject neigh,
- float surfaceWorldFilterSize);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceWorldProjectedPixelX(
- TQ3NeighborhoodObject neigh,
- const TQ3Vector3D *surfaceWorldProjectedPixelX);
-
- EXPORT TQ3Status Q3Neighborhood_SetSurfaceWorldProjectedPixelY(
- TQ3NeighborhoodObject neigh,
- const TQ3Vector3D *surfaceWorldProjectedPixelY);
-
- EXPORT TQ3Status Q3Neighborhood_SetShadingUV(
- TQ3NeighborhoodObject neigh,
- const TQ3Param2D *shadingUV);
-
- EXPORT TQ3Status Q3Neighborhood_SetShadingNormal(
- TQ3NeighborhoodObject neigh,
- const TQ3Vector3D *shadingNormal);
-
- EXPORT TQ3Status Q3Neighborhood_SetShadingColor(
- TQ3NeighborhoodObject neigh,
- const TQ3ColorRGB *shadingColor);
-
- EXPORT TQ3Status Q3Neighborhood_SetShadingScalar(
- TQ3NeighborhoodObject neigh,
- float shadingScalar);
-
- EXPORT TQ3Status Q3Neighborhood_SetShadingOpacity(
- TQ3NeighborhoodObject neigh,
- float shadingOpacity);
-
- EXPORT TQ3Status Q3Neighborhood_SetShadingTrim(
- TQ3NeighborhoodObject neigh,
- TQ3Boolean shadingTrim);
-
-
- /******************************************************************************
- ** **
- ** Get Methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ImagePlane *Q3Neighborhood_GetImagePlane(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3ViewInfo *Q3Neighborhood_GetViewInfo(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3GroupObject Q3Neighborhood_GetLightGroup(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3RendererObject Q3Neighborhood_GetRenderer(
- TQ3NeighborhoodObject neigh);
-
- EXPORT float Q3Neighborhood_GetAmbientCoefficient(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3ColorRGB *Q3Neighborhood_GetDiffuseColor(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3ColorRGB *Q3Neighborhood_GetSpecularColor(
- TQ3NeighborhoodObject neigh);
-
- EXPORT float Q3Neighborhood_GetSpecularControl(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3ColorRGB *Q3Neighborhood_GetTransparencyColor(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3ColorRGB *Q3Neighborhood_GetEmittedColor(
- TQ3NeighborhoodObject neigh);
-
- EXPORT float Q3Neighborhood_GetDepth(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Param2D *Q3Neighborhood_GetSurfaceUV(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Point3D *Q3Neighborhood_GetSurfaceLocation(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Vector3D *Q3Neighborhood_GetSurfaceNormal(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Tangent2D *Q3Neighborhood_GetSurfaceTangent(
- TQ3NeighborhoodObject neigh);
-
- EXPORT float Q3Neighborhood_GetSurfaceFilterSize(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Vector2D *Q3Neighborhood_GetSurfaceProjectedPixelX(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Vector2D *Q3Neighborhood_GetSurfaceProjectedPixelY(
- TQ3NeighborhoodObject neigh);
-
- EXPORT float Q3Neighborhood_GetSurfaceWorldFilterSize(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Vector3D *Q3Neighborhood_GetSurfaceWorldProjectedPixelX(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Vector3D *Q3Neighborhood_GetSurfaceWorldProjectedPixelY(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Param2D *Q3Neighborhood_GetShadingUV(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Vector3D *Q3Neighborhood_GetShadingNormal(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3ColorRGB *Q3Neighborhood_GetShadingColor(
- TQ3NeighborhoodObject neigh);
-
- EXPORT float Q3Neighborhood_GetShadingScalar(
- TQ3NeighborhoodObject neigh);
-
- EXPORT float Q3Neighborhood_GetShadingOpacity(
- TQ3NeighborhoodObject neigh);
-
- EXPORT TQ3Boolean Q3Neighborhood_GetShadingTrim(
- TQ3NeighborhoodObject neigh);
-
- #endif /* ESCHER_VER_15 */
-
-
- /******************************************************************************
- ** **
- ** Boundary Type **
- ** **
- *****************************************************************************/
-
- typedef enum TQ3ShaderUVBoundary {
- kQ3ShaderUVBoundaryWrap,
- kQ3ShaderUVBoundaryClamp
- } TQ3ShaderUVBoundary;
-
-
- /******************************************************************************
- ** **
- ** Shader methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3Status Q3Shader_Submit(
- TQ3ShaderObject shader,
- TQ3ViewObject view);
-
- EXPORT TQ3Status Q3Shader_SetUVTransform(
- TQ3ShaderObject shader,
- const TQ3Matrix3x3 *uvTransform);
-
- EXPORT TQ3Status Q3Shader_GetUVTransform(
- TQ3ShaderObject shader,
- TQ3Matrix3x3 *uvTransform);
-
- EXPORT TQ3Status Q3Shader_SetUBoundary(
- TQ3ShaderObject shader,
- TQ3ShaderUVBoundary uBoundary);
-
- EXPORT TQ3Status Q3Shader_SetVBoundary(
- TQ3ShaderObject shader,
- TQ3ShaderUVBoundary vBoundary);
-
- EXPORT TQ3Status Q3Shader_GetUBoundary(
- TQ3ShaderObject shader,
- TQ3ShaderUVBoundary *uBoundary);
-
- EXPORT TQ3Status Q3Shader_GetVBoundary(
- TQ3ShaderObject shader,
- TQ3ShaderUVBoundary *vBoundary);
-
- EXPORT TQ3ObjectType Q3Shader_GetType(
- TQ3ShaderObject shader);
-
-
- /******************************************************************************
- ** **
- ** Illumination Shader Class Methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ObjectType Q3IlluminationShader_GetType(
- TQ3ShaderObject shader);
-
- /******************************************************************************
- ** **
- ** Phong Illumination Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ShaderObject Q3PhongIllumination_New(
- void);
-
-
- /******************************************************************************
- ** **
- ** Lambert Illumination Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ShaderObject Q3LambertIllumination_New(
- void);
-
-
- /******************************************************************************
- ** **
- ** Lambert Illumination Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ShaderObject Q3NULLIllumination_New(
- void);
-
-
- /******************************************************************************
- ** **
- ** Texture Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ShaderObject Q3TextureShader_New(
- TQ3TextureObject texture);
-
- EXPORT TQ3Status Q3TextureShader_GetTexture(
- TQ3ShaderObject shader,
- TQ3TextureObject *texture);
-
- EXPORT TQ3Status Q3TextureShader_SetTexture(
- TQ3ShaderObject shader,
- TQ3TextureObject texture);
-
-
- #if defined(ESCHER_VER_15) && ESCHER_VER_15
-
- /******************************************************************************
- ** **
- ** Enum Definitions **
- ** **
- *****************************************************************************/
-
- typedef enum TQ3ShaderEffect {
- kQ3ShaderEffectReplace,
- kQ3ShaderEffectDarken,
- kQ3ShaderEffectLighten,
- kQ3ShaderEffectMultiply
- } TQ3ShaderEffect;
-
- typedef enum TQ3ShaderIlluminationUsageMasks {
- kQ3ShaderIlluminationMaskInherited = 1 << 0,
- kQ3ShaderIlluminationMaskAttached = 1 << 1,
- kQ3ShaderIlluminationMaskEnabled = 1 << 2
- } TQ3ShaderIlluminationUsageMasks;
-
- typedef unsigned long TQ3ShaderIlluminationUsage;
-
-
- /******************************************************************************
- ** **
- ** Shader methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3Status Q3Shader_Evaluate(
- TQ3ShaderObject shader,
- TQ3NeighborhoodObject neigh);
-
-
- /******************************************************************************
- ** **
- ** set methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3Status Q3Shader_SetAlphaChannel(
- TQ3ShaderObject shader,
- TQ3ShaderObject alphaChannel);
-
- EXPORT TQ3Status Q3Shader_SetUnderColor(
- TQ3ShaderObject shader,
- TQ3ShaderObject underColor);
-
- EXPORT TQ3Status Q3Shader_SetShaderEffect(
- TQ3ShaderObject shader,
- const TQ3ShaderEffect shaderEffect);
-
- EXPORT TQ3Status Q3Shader_SetAttachment(
- TQ3ShaderObject shader,
- TQ3AttachmentObject attachment);
-
- EXPORT TQ3Status Q3Shader_SetShaderTransform(
- TQ3ShaderObject shader,
- const TQ3Matrix4x4 *shaderTransform);
-
-
- /******************************************************************************
- ** **
- ** get methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3Status Q3Shader_GetAlphaChannel(
- TQ3ShaderObject shader,
- TQ3ShaderObject *alphaChannel);
-
- EXPORT TQ3Status Q3Shader_GetUnderColor(
- TQ3ShaderObject shader,
- TQ3ShaderObject *underColor);
-
- EXPORT TQ3Status Q3Shader_GetShaderEffect(
- TQ3ShaderObject shader,
- TQ3ShaderEffect *shaderEffect);
-
- EXPORT TQ3Status Q3Shader_GetAttachment(
- TQ3ShaderObject shader,
- TQ3AttachmentObject *attachment);
-
- EXPORT TQ3Status Q3Shader_GetShaderTransform(
- TQ3ShaderObject shader,
- TQ3Matrix4x4 *shaderTransform);
-
-
- /******************************************************************************
- ** **
- ** illuminator methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3Status Q3Shader_AttachIlluminator(
- TQ3ShaderObject shader,
- TQ3ShaderObject illum);
-
- EXPORT TQ3Status Q3Shader_InheritIlluminator(
- TQ3ShaderObject shader);
-
- EXPORT TQ3Status Q3Shader_DisableIlluminator(
- TQ3ShaderObject shader);
-
- EXPORT TQ3Status Q3Shader_EnableIlluminator(
- TQ3ShaderObject shader);
-
- EXPORT TQ3Status Q3Shader_QueryIlluminationUsage(
- TQ3ShaderObject shader,
- TQ3ShaderIlluminationUsage *illuminationUsage);
-
-
- /******************************************************************************
- ** **
- ** class managment methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ObjectClass Q3ShaderClass_Register(
- TQ3ObjectType shaderType,
- const char *shaderName,
- TQ3MetaHandler metaHandler);
-
- EXPORT void *Q3Shader_GetSubClassData(
- TQ3ShaderObject shader,
- TQ3ObjectType shaderType);
-
-
- /******************************************************************************
- ** **
- ** Atmospheric Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ShaderObject Q3AtmosphericShader_New(
- void);
-
- EXPORT TQ3Status Q3AtmosphericShader_GetExtinctionCoefficient(
- TQ3ShaderObject shader,
- float *extinctionCoefficient);
-
- EXPORT TQ3Status Q3AtmosphericShader_GetAtmosphereColor(
- TQ3ShaderObject shader,
- TQ3ColorRGB *atmosphereColor);
-
- EXPORT TQ3Status Q3AtmosphericShader_SetExtinctionCoefficient(
- TQ3ShaderObject shader,
- float extinctionCoefficient);
-
- EXPORT TQ3Status Q3AtmosphericShader_SetAtmosphereColor(
- TQ3ShaderObject shader,
- const TQ3ColorRGB *atmosphereColor);
-
-
- /******************************************************************************
- ** **
- ** Base Class Illumination Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ObjectClass Q3IlluminationShaderClass_Register(
- TQ3ObjectType illuminationShaderType,
- const char *illuminationShaderName,
- TQ3MetaHandler metaHandler);
-
- EXPORT void *Q3IlluminationShader_GetSubClassData(
- TQ3IlluminationShaderObject illuminationShader,
- TQ3ObjectType illuminationShaderType);
-
- EXPORT TQ3ShaderObject Q3IlluminationShader_New(
- TQ3ObjectClass illuminationShaderClass,
- unsigned long dataSize);
-
- EXPORT TQ3Status Q3IlluminationShader_SetLightGroup(
- TQ3ShaderObject shader,
- TQ3GroupObject lightGroup);
-
- EXPORT TQ3Status Q3IlluminationShader_GetLightGroup(
- TQ3ShaderObject shader,
- TQ3GroupObject *lightGroup);
-
-
- /******************************************************************************
- ** **
- ** Base Class Surface Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ObjectClass Q3SurfaceShaderClass_Register(
- TQ3ObjectType surfaceShaderType,
- const char *surfaceShaderName,
- TQ3MetaHandler metaHandler);
-
- EXPORT void *Q3SurfaceShader_GetSubClassData(
- TQ3SurfaceShaderObject surfaceShader,
- TQ3ObjectType surfaceShaderType);
-
- EXPORT TQ3ShaderObject Q3SurfaceShader_New(
- TQ3ObjectClass surfaceShaderClass,
- unsigned long dataSize);
-
- EXPORT TQ3ObjectType Q3SurfaceShader_GetType(
- TQ3SurfaceShaderObject shader);
-
- /******************************************************************************
- ** **
- ** Image Shader **
- ** **
- *****************************************************************************/
-
- #define kQ3ImageShaderForeground ((unsigned long)1 << 1)
- #define kQ3ImageShaderBackground ((unsigned long)1 << 2)
-
- EXPORT TQ3ShaderObject Q3ImageShader_New(
- unsigned long kind);
-
- EXPORT TQ3Status Q3ImageShader_GetView(
- TQ3ShaderObject shader,
- TQ3ViewObject *view);
-
- EXPORT TQ3Status Q3ImageShader_GetSourceShader(
- TQ3ShaderObject shader,
- TQ3ShaderObject *sourceShader);
-
- EXPORT TQ3Status Q3ImageShader_SetView(
- TQ3ShaderObject shader,
- const TQ3ViewObject view);
-
- EXPORT TQ3Status Q3ImageShader_SetSourceShader(
- TQ3ShaderObject shader,
- const TQ3ShaderObject sourceShader);
-
-
- /******************************************************************************
- ** **
- ** Trim Shader **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ShaderObject Q3TrimShader_New(
- void);
-
- EXPORT TQ3Status Q3TrimShader_GetThreshold(
- TQ3ShaderObject shader,
- float *threshold);
-
- EXPORT TQ3Status Q3TrimShader_GetTrimmer(
- TQ3ShaderObject shader,
- TQ3ShaderObject *trimmer);
-
- EXPORT TQ3Status Q3TrimShader_SetThreshold(
- TQ3ShaderObject shader,
- float threshold);
-
- EXPORT TQ3Status Q3TrimShader_SetTrimmer(
- TQ3ShaderObject shader,
- TQ3ShaderObject trimmer);
-
- #endif /* ESCHER_VER_15 */
-
-
- /******************************************************************************
- ** **
- ** Texture Methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ObjectType Q3Texture_GetType(
- TQ3TextureObject texture);
-
- EXPORT TQ3Status Q3Texture_GetWidth(
- TQ3TextureObject texture,
- unsigned long *width);
-
- EXPORT TQ3Status Q3Texture_GetHeight(
- TQ3TextureObject texture,
- unsigned long *height);
-
-
- /******************************************************************************
- ** **
- ** Pixmap Texture **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3TextureObject Q3PixmapTexture_New(
- const TQ3StoragePixmap *pixmap);
-
- EXPORT TQ3Status Q3PixmapTexture_GetPixmap(
- TQ3TextureObject texture,
- TQ3StoragePixmap *pixmap);
-
- EXPORT TQ3Status Q3PixmapTexture_SetPixmap(
- TQ3TextureObject texture,
- const TQ3StoragePixmap *pixmap);
-
- #if defined(ESCHER_VER_15) && ESCHER_VER_15
-
- EXPORT TQ3Status Q3Texture_GetBitsPerChannel(
- TQ3TextureObject texture,
- unsigned long *bitsPerChannel);
-
- EXPORT TQ3Status Q3Texture_GetNumberOfChannels(
- TQ3TextureObject texture,
- unsigned long *numberOfChannels);
-
- EXPORT TQ3Status Q3Texture_GetAlphaChannel(
- TQ3TextureObject texture,
- unsigned long *alphaChannel);
-
- EXPORT TQ3Status Q3Texture_GetRGBChannel(
- TQ3TextureObject texture,
- unsigned long *redChannel,
- unsigned long *greenChannel,
- unsigned long *blueChannel);
-
-
- /******************************************************************************
- ** **
- ** Texture set methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3Status Q3Texture_SetAlphaChannel(
- TQ3TextureObject texture,
- unsigned long alphaChannel);
-
- EXPORT TQ3Status Q3Texture_SetRGBChannel(
- TQ3TextureObject texture,
- unsigned long redChannel,
- unsigned long greenChannel,
- unsigned long blueChannel);
-
-
- /******************************************************************************
- ** **
- ** Class managment methods **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ObjectClass Q3TextureClass_Register(
- TQ3ObjectType textureType,
- const char *textureName,
- TQ3MetaHandler metaHandler);
-
- EXPORT void *Q3Texture_GetSubClassData(
- TQ3TextureObject texture,
- TQ3ObjectType textureType);
-
-
- /******************************************************************************
- ** **
- ** Attachment methods **
- ** **
- *****************************************************************************/
-
- TQ3Status Q3Attachment_Evaluate(
- TQ3AttachmentObject attachment,
- TQ3NeighborhoodObject neigh);
-
-
- /******************************************************************************
- ** **
- ** Set methods **
- ** **
- *****************************************************************************/
-
- TQ3Status Q3Attachment_SetBoundingSphere(
- TQ3AttachmentObject attachment,
- const TQ3BoundingSphere *boundingSphere);
-
- TQ3Status Q3Attachment_SetAttachmentTransform(
- TQ3AttachmentObject attachment,
- const TQ3Matrix4x4 *attachmentTransform);
-
-
- /******************************************************************************
- ** **
- ** Get methods **
- ** **
- *****************************************************************************/
-
- TQ3Status Q3Attachment_GetBoundingSphere(
- TQ3AttachmentObject attachment,
- TQ3BoundingSphere *boundingSphere);
-
- TQ3Status Q3Attachment_GetAttachmentTransform(
- TQ3AttachmentObject attachment,
- TQ3Matrix4x4 *attachmentTransform);
-
-
- /******************************************************************************
- ** **
- ** Class managment methods **
- ** **
- *****************************************************************************/
-
- TQ3ObjectClass Q3AttachmentClass_Register(
- TQ3ObjectType shaderType,
- const char *shaderName,
- TQ3MetaHandler metaHandler);
-
- void *Q3Attachment_GetSubClassData(
- TQ3AttachmentObject shader,
- TQ3ObjectType shaderType);
-
- #endif /* ESCHER_VER_15 */
-
- /******************************************************************************
- ** **
- ** RGB Color routines **
- ** **
- *****************************************************************************/
-
- EXPORT TQ3ColorRGB *Q3ColorRGB_Set(
- TQ3ColorRGB *color,
- float r,
- float g,
- float b);
-
- EXPORT TQ3ColorRGB *Q3ColorRGB_Add(
- const TQ3ColorRGB *c1,
- const TQ3ColorRGB *c2,
- TQ3ColorRGB *result);
-
- EXPORT TQ3ColorRGB *Q3ColorRGB_Subtract(
- const TQ3ColorRGB *c1,
- const TQ3ColorRGB *c2,
- TQ3ColorRGB *result);
-
- EXPORT TQ3ColorRGB *Q3ColorRGB_Scale(
- const TQ3ColorRGB *color,
- float scale,
- TQ3ColorRGB *result);
-
- EXPORT TQ3ColorRGB *Q3ColorRGB_Clamp(
- const TQ3ColorRGB *color,
- TQ3ColorRGB *result);
-
- EXPORT TQ3ColorRGB *Q3ColorRGB_Lerp(
- const TQ3ColorRGB *first,
- const TQ3ColorRGB *last,
- float alpha,
- TQ3ColorRGB *result);
-
- EXPORT TQ3ColorRGB *Q3ColorRGB_Accumulate(
- const TQ3ColorRGB *src,
- TQ3ColorRGB *result);
-
- EXPORT float *Q3ColorRGB_Luminance(
- const TQ3ColorRGB *color,
- float *luminance);
-
-
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
-
- #endif /* QD3DShader_h */
-